<template>
  <view class="page">
    <!-- 注意： App 网页向应用 postMessage 为实时消息 -->
    <web-view v-if="vdata.url" :src="vdata.url" @message="onMessageFunc"></web-view>
  </view>
</template>

<script setup>
import { ref, reactive } from "vue"
import { onLoad } from '@dcloudio/uni-app'
import appConfig from '@/config/appConfig.js'
import ak from '@/commons/utils/ak.js'
import storageManage from '@/commons/utils/storageManage.js'

const vdata = reactive({
  url: null,
  isAdd: false, // 是否新增， 新增将返回两个页面，  修改返回一个。
})

onLoad((option) => {
  let jeepayToken = storageManage.token()
  let mchNo = storageManage.userInfo().mchNo
  let uploadImgSize = storageManage.uploadImgSize() || ''
  let isView = option.isView == 1 ? true : false // 是否预览模式

  let baseUrl = `${appConfig.env.JEEPAY_BASE_URL}`

  let url = ''
  // 包含 记录ID
  if (option.applyId) {
    url = `${baseUrl}/h5MchApplyment?isView=${isView ? 1 : 0}&jeepayToken=${jeepayToken}&applyId=${option.applyId}&uploadImgSize=${uploadImgSize}`
  } else {
    vdata.isAdd = true
	
	// 副本。 
	let copyInfoSourceApplyIdParam = option.copyInfoSourceApplyId || ''
    url = `${baseUrl}/h5MchApplyment?isView=0&jeepayToken=${jeepayToken}&ifCode=${option.ifCode}&mchNo=${mchNo}&copyInfoSourceApplyId=${copyInfoSourceApplyIdParam}&uploadImgSize=${uploadImgSize}&autoConfigMchAppId=${option.appId || ''}` 
  }

  vdata.url = url
})

// App 网页向应用 postMessage 为实时消息
// 接收到 web-view事件 ,
// 注意：放置数据， 必须在data字段下，  比如： uni.postMessage({data: {ctrl: 'TOTOTOTOTOT'}})
function onMessageFunc(msg) {
	
  // 接收到响应的数据 [数组格式， 比如接收到 web-view的返回等特定事件， 将数据入栈全部返回 ]
  let postDataArray = msg.detail.data

  // 无数据
  if (!postDataArray || !Array.isArray(postDataArray)) {
    return false
  }

  for (var i = 0; i < postDataArray.length; i++) {
    if (postDataArray[i].ctrl == 'toApplymentListAndRef') {
      // 跳转到进件列表 && 刷新

      // APP 可以实时接收到消息，   微信小程序需要在返回事件 （会关闭当前页面）时再接收到消息。

      // #ifdef APP-PLUS
		ak.go.back(1, ak.emit.ENAME_REF_APPLYMENT_LIST) //返回上一页 
      // #endif

      // #ifdef MP-WEIXIN
        ak.emit.pageEmit(ak.emit.ENAME_REF_APPLYMENT_LIST) // 刷新页面。 
      // #endif

      break
    }
  }
}
</script>

<style lang="scss" scoped>
.page {
  padding: 30rpx;
  box-sizing: border-box;
  padding-bottom: 150rpx;
  background-color: #f5f6fd;
  min-height: calc(100vh - 0px);
}
</style>
